
import axios from "axios";

export default {
    logout: function () {
        let userAccount = ''
        if(localStorage.getItem('userAccount')){
            // 如果用户勾选了记住密码的话,需要把账号密码备份出来
            userAccount = localStorage.getItem('userAccount')
        }
        localStorage.clear();
        localStorage.setItem('userAccount',userAccount)
        window.location.reload();
    },
    relogin() {
        return axios.get(url.refreshTokenForSessionId, {
            headers: {
                refreshToken: localStorage.getItem('refreshToken'),
            }
        }).then((data) => {
            localStorage.setItem('ACCESS_TOKEN', data.data.data.newSessionId)
            return true
        }).catch(() => {
            this.logout();
            return false
        })
    },
    clearEmPty(arr,keyArr = false) {
        // 过滤掉数组中,对象里面所有值为空的项
        return arr.filter((obj) => {
            if(keyArr){
                //    判断特定的key值
                for (let i = 0; i < keyArr.length; i++) {
                    const key = keyArr[i];
                    if (obj[key] && obj[key] !== null && obj[key] !== undefined) {
                        return obj
                    }
                }
            }else{
                // 判断全部都为空
                for (const key in obj) {
                    if (obj[key] && obj[key] !== null && obj[key] !== undefined) {
                        return  obj
                    }
                }
            }

        })
    },

    downExcel(data,fileName='xxxx',fileType = 'xls'){
        // const url = window.URL.createObjectURL(new Blob([data], {type:'application/octet-stream'}))  // 二进制文件转化
        const url = window.URL.createObjectURL(new Blob([data.data], {type:'application/GBK'}))  // 二进制文件转化
        // const url = window.URL.createObjectURL(new Blob([data], {type:'application/vnd.ms-excel'}))  // 二进制文件转化
        // const url = window.URL.createObjectURL(new Blob([data], {type:'application/.xls'}))  // 二进制文件转化

        // const url = window.URL.createObjectURL(new Blob([data], {type:'application/UTF-8'}))  // 二进制文件转化
        // const url = window.URL.createObjectURL(new Blob([data]))  // 二进制文件转化
       // const url = window.URL.createObjectURL(new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}))
       const link = document.createElement('a')
        fileType = this.getFileSuffix(data.headers['content-disposition']) // 获取文件类型
       link.style.display = 'none'
       link.href = url
       link.setAttribute('download', `${fileName}.${fileType}`)
       // link.setAttribute('download')
       // link.setAttribute('download', `${fileName}`)
       document.body.appendChild(link)
       link.click()
       document.body.removeChild(link)
    },
    getRandomId(){
        // 获取完全随机的ID
        return 'd' + new Date().getTime() + Math.floor(Math.random()*1000)
    },
    getFileSuffix(urlStr){
    //    获取文件后缀名
        return urlStr.substring(urlStr.lastIndexOf('.') + 1)
    },
    getFileName(urlStr){
        //    获取文件名
        return urlStr.substring(0,urlStr.lastIndexOf('.'))
    },
    downFile(value,name = ''){
    //    下载文件
        const a = document.createElement('a')
        //   let url = baseUrl + binding.value // 若是不完整的url则需要拼接baseURL
        const url = value // 完整的url则直接使用
        // 这里是将url转成blob地址，
        fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址
            a.href = URL.createObjectURL(blob)
            console.log(a.href)
            a.download = name // 下载文件的名字
            document.body.appendChild(a)
            a.click()
        })
    },
    getTextWidth(text) {
        // 获取文字占用的宽度
        // var canvas = document.createElement("canvas");
        // var context = canvas.getContext("2d");
        // context.font = 'normal 14px PingFangSC-Regular';
        // var metrics = context.measureText(text);
        // return metrics.width;
        return 180;
    },
    getArrToStr(obj){
    //    get请求下,有数组的情况下,将请求参数拼接成字符串,?号需要手动添加
        let arr = []
        for(let key in obj){
            let str = '';
            if(Array.isArray(obj[key])){
                obj[key].map((item)=>{
                    str = `${key}=${item}`
                    arr.push(str)
                })
            }else{
                str = `${key}=${obj[key]}`
                arr.push(str)
            }
        }

        return arr.join('&')
    },
    changeToPage(arr,obj){
    //    将数据变成翻页的方法,arr是数据数组,obj是翻页的对象,跟目前接口的相同,currentPage--当前页,pageSize一页展示的数量
        let start = (obj.currentPage - 1 ) * obj.pageSize
        let returnData = arr.slice(start,obj.currentPage * obj.pageSize)
        return {
            data:returnData,
            currentPage:obj.currentPage,
            pageSize:obj.pageSize,
            resultCount:arr.length,
            pageCount:Math.ceil(arr.length / obj.pageSize),
        }
    },

}
